iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0
Security

《Nyahello!從零開始的 30 天 malware 學習日誌》系列 第 4

【Day 4】師父領進門!開始 malware 初步分析

  • 分享至 

  • xImage
  •  

前言

我們已經知道了惡意程式是甚麼,也建立了一個可以安全分析的環境,所以我們已經可以進行我們的分析了,但是在開始之前我們要了解,要如何分析,又為甚麼要分析咧?

分析的意義

所謂的惡意程式分析,是對可疑程式、文件、腳本、記憶體或網路行為進行可重現的技術分析,並回答以下問題:

它是什麼、如何進入、做了什麼、影響誰、如何偵測與清除

並且透過分析去了解其

  • 檔案格式
  • 程式碼
  • 執行行為
  • 持久化技術
  • C2
  • 憑證存取
  • 橫向移動
  • 資料外洩

等等,於是在分析完成後便可以建立報告,及訂定偵測規則等

如何分析

在拿到一個惡意程式以後,我們需要進行許多步驟的分析,最終才能完整地了解其行為。

1. 初步判斷

在拿到檔案的一開始,我們應該先透過他的檔名、格式、簽章、端點偵測結果與 hash 值等進行調查,我們可以把檔案或是 hash 值先丟到 VirusTotal 上觀察其分類並建立基本概念。

2. 基礎靜態分析

透過靜態分析,我們可以在把檔案實際跑起來以前去觀察可能發生的行為,例如利用 strings 去看可能留下的可疑資訊,以及透過其呼叫的函數推測其可能的行為等,並觀察其架構與檔案特徵。

3. 基礎動態分析

接下來我們就可以把它跑起來觀察,在隔離的 sandbox/VM 中觀察其是否有可疑的網路連線,以及是否建立了任何可疑檔案或是修改、新增 Registry 以觀察基本的動向。

4. 進階動態分析

這個階段要透過 debugger 如 x64dbg 進行進一步的調查,並觀察記憶體的寫入、API 追蹤與解殼等等,並深入觀察執行結果。

5. 逆向工程

這是最後也是最耗時的階段,透過 IDA、Ghidra 等工具將檔案反組譯,分析程式的流程、演算法,以及 config extraction,最終完全了解這隻惡意程式的運作原理。

進行初步分析

都準備好以後,以 PMA 的官方教材開始進行第一次的分析!

先下載樣本檔案,並且拖到虛擬機以後解壓縮,就可以看到第一個題目的檔案

https://ithelp.ithome.com.tw/upload/images/20260830/20183878FkeuRw8ral.png

今天要看的題目是 Lab 1-1:

This lab uses the files Lab01-01.exe and Lab01-01.dll. Use the tools and techniques described in the chapter to gain information about the files and answer the questions below.

Questions

  • 上傳到 VirusTotal 並看報告,觀察是否符合任何防毒特徵
    • 先打開 HashMyFiles 產生這個檔案的 hash 值並且丟到 VirusTotal 去看
    • https://ithelp.ithome.com.tw/upload/images/20260830/20183878xznV4rbJpd.png
    • 發現它已被標示為惡意程式,並且會進行檔案感染與系統劫持
  • 這個檔案何時被編譯?
    • https://ithelp.ithome.com.tw/upload/images/20260830/20183878Lq1o6aLiCz.png
    • 在 PEview 中,可以看到在 IMAGE_NT_HEADERS 的 Signature 裡面,有標註這個檔案的編譯時間
    • 兩隻檔案都是 2010/12/19
    • PE(Portable Executable)是 Windows 可執行檔的檔案格式,Windows 的 exedll 等都是 PE 格式
    • 4D 5A 是 Windows 與 DOS 可執行檔(例如 .exe 檔)最前端的檔案標頭識別碼,對應的文字就是 MZ
  • 是否加殼或混淆
    • https://ithelp.ithome.com.tw/upload/images/20260830/20183878iMVHuX3IFi.png
    • 打開 DIE(Detect It Easy)檢查發現沒有加殼的跡象
    • https://ithelp.ithome.com.tw/upload/images/20260830/20183878c1trADc9yq.png
    • 在 PE Studio 裡面看到有很多正常的 Windows API,代表 Import Table 是完整存在的,沒有混淆跡象
  • 觀察 imports 並推測行為
    • 檔案操作:在剛剛 PE Studio 裡面看到 Imports 裡面有像是 CreateFileA、CopyFileA 的檔案操作,代表這隻程式會建立和複製檔案
    • 檔案掃描:有看到 FindFirstFileA、FindNextFileA 代表他可能掃描了整個資料夾
    • Memory Mapping:利用 CreateFileMappingA、MapViewOfFile 可以把 exe 映射進記憶體後直接修改
    • 另一個 dll 檔案的 Import 看到有 CreateProcess、Sleep,還有 socket、connect 等
    • 所以目前看來可能的行為大概是找檔案、開檔案、修改檔案還有網路連線等等
  • 在受感染主機上還有哪些檔案或是 host-based indicators 可以拿來判斷是否感染
    • https://ithelp.ithome.com.tw/upload/images/20260830/20183878rgg5Ftr0nD.png
    • 在 strings 中發現這個看起來像是故意拼錯的 C:\Windows\System32\kerne132.dll,很可能就是這支惡意程式所建立的檔案
  • 有哪些網路層級的指標可以拿來找出感染這支 Malware 的主機?
    • https://ithelp.ithome.com.tw/upload/images/20260830/201838782u7irc649m.png
    • 在另一個 dll 檔案的 Import 看到他有網路連線、資料傳輸、接收資料等等
    • https://ithelp.ithome.com.tw/upload/images/20260830/20183878AdyJv99YyL.png
    • 接著在 strings 中發現 ip 127.26.152.13,可能就是惡意程式連線用的,不過因為是課程所以是假的 ip
  • 根據目前所有分析結果,這兩隻檔案的目的是甚麼
    • 根據目前觀測到的行為,exe 檔案應該是負責安裝與執行 dll 檔案的,然後 dll 檔案應該是可以讓攻擊者遠端連線的後門程式

後話

因為老家的古董主機記憶體太少,跑一個虛擬機就直接卡爛,看來之後搬家要順便升級設備了QQ
然後又不小心眼殘看成壓縮檔直接把檔案載到本機上跳了一堆警告XD
總之因為各種原因所以進度堪憂還好有壓線寫完

參考資料

  • Practical Malware Analysis (Chapter 1)
  • Mars Cheng:返璞歸真:從⼿動分析惡意程式到 AI 時代的應⽤

本日貓味

https://ithelp.ithome.com.tw/upload/images/20260830/20183878pKIzj0Yimz.jpg


上一篇
【Day 3】別引狼入室!如何安全取得樣本並建立 malware 分析環境
下一篇
【Day 5】準備跑起來!認識 malware 基本動態分析工具
系列文
《Nyahello!從零開始的 30 天 malware 學習日誌》9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言